package com.ytjj.qmyx.admin.service.data;

import com.ytjj.qmyx.admin.model.request.dataStatistics.DataStatisticsRequest;
import com.ytjj.qmyx.admin.model.response.ActivityDataStatisticsResponse;
import com.ytjj.qmyx.admin.model.response.DataStatisticsResponse;
import org.springframework.data.mongodb.core.query.Criteria;

import java.util.List;
import java.util.Map;

public interface PlatformStatisticService {
    /**
     * 获取平台统计列表
     *
     * @param dataStatisticsRequest
     * @return
     */
    DataStatisticsResponse getPlatformStatisticsList(DataStatisticsRequest dataStatisticsRequest);

    /**
     * 获取平台统计列表
     *
     * @param dataStatisticsRequest
     * @return
     */
    DataStatisticsResponse getPlatformStatisticsListV3(DataStatisticsRequest dataStatisticsRequest);


    /**
     * 获取平台统计列表
     *
     * @param dataStatisticsRequest
     * @return
     */
    DataStatisticsResponse getPlatformStatisticsListV2(DataStatisticsRequest dataStatisticsRequest);

    DataStatisticsResponse getStatisticsByFinance(DataStatisticsRequest request);

    /**
     * 获取活动统计列表
     * @param dataStatisticsRequest
     * @return
     */
    ActivityDataStatisticsResponse getActivityStatisticsList(DataStatisticsRequest dataStatisticsRequest);

    /**
     * uuid分组再计数
     * @param criteria
     * @param collectionName
     * @return List<Map>
     */
    List<Map> aggregateByUuid(Criteria criteria, String collectionName);

    /**
     * 获取uv
     */
    Integer getUv(DataStatisticsRequest dataStatisticsRequest);
}
